﻿using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using Coolite.Ext.Web;
using GUESTSMANAGEMENT.Controller;

namespace GUESTSMANAGEMENT.View.Event
{
    public partial class grdEvent : System.Web.UI.UserControl
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Ext.IsAjaxRequest)
            {
                try
                {
                    this.eventStore.DataSource = Controller.Event.getGridList();
                    this.eventStore.DataBind();
                }
                catch
                {
                    Ext.Msg.Alert("Alerta!", "Ocorreu um erro durante a transação! Tente novamente!").Show();
                }
            }
        }

        public Store GridStore
        {
            get;
            set;
        }

        protected void Page_Init(object sender, EventArgs e)
        {
            try
            {
                this.GMEvent.GridStore = this.eventStore;
                this.GridStore = this.eventStore;
            }
            catch
            {
                Ext.Msg.Alert("Alerta!", "Ocorreu um erro durante a transação! Tente novamente!").Show();
            }
        }

        protected void Refresh(object sender, StoreRefreshDataEventArgs e)
        {
            try
            {
                this.eventStore.DataSource = Controller.Event.getGridList();
                this.eventStore.DataBind();
            }
            catch
            {
                Ext.Msg.Alert("Alerta!", "Ocorreu um erro durante a transação! Tente novamente!").Show();
            }
        }

        public void SetListGuests(object sender, AjaxEventArgs e)
        {
            try
            {
                string idEvento = e.ExtraParams["idEvento"];
                gmevent evento = Controller.Event.getByEvent(int.Parse(idEvento));
                this.Relationship.SetGridRel(evento);
                this.Relationship.ShowGridRel();
            }
            catch
            {
                Ext.Msg.Alert("Alerta!", "Ocorreu um erro durante a transação! Tente novamente!").Show();
            }
        }

        public void SetRelationShip(object sender, AjaxEventArgs e)
        {
            try
            {
                string id = e.ExtraParams["id"];
                gmevent evento = Controller.Event.getByEvent(int.Parse(id));
                this.grdRelationship.SetGridRelationship(evento);
                this.grdRelationship.ShowGridRelationship();
            }
            catch
            {
                Ext.Msg.Alert("Alerta!", "Ocorreu um erro durante a transação! Tente novamente!").Show();
            }
        }

        protected void EditEvent(object sender, AjaxEventArgs e)
        {
            try
            {
                string id = e.ExtraParams["id"];
                this.GMEvent.SetEvent(Controller.Event.RetornarEvent(int.Parse(id)));
                this.GMEvent.ShowEvent();
            }
            catch
            {
                Ext.Msg.Alert("Alerta!", "Ocorreu um erro durante a transação! Tente novamente!").Show();
            }
        }

        protected void ConfirmDeleteEvent(object sender, AjaxEventArgs e)
        {
            try
            {
                string selectEvent = this.txt_idEvent.Text.Trim();
                gmevent gmevent = Controller.Event.getByEvent(int.Parse(selectEvent));
                Controller.Event.deletEvent(gmevent);
                this.GridStore.AddScript(string.Format("{0}.reload();", this.GridStore.ClientID));
                Ext.Msg.Alert("Alerta!", "Evento <b>" + gmevent.NMEVENT + "</b> excluído com sucesso!").Show();
            }
            catch
            {
                Ext.Msg.Alert("Alerta!", "Ocorreu um erro durante a transação! Tente novamente!").Show();
            }
        }
    }
}